package elicecn.util;

import java.util.Random;
import java.util.UUID;

public class RandomUniqueKey {
	private static Random RND = new Random();

	/**
	 * 生成随机数，每毫秒999个不重复的数字。日期左移32位，并生成32位随机数，与日期加入的结果返回。
	 * 
	 * @return 随机数
	 */
	public static long randomLong() {
		return randomLong(0xff);
	}

	/**
	 * 生成随机数。日期左移shift位，并生成shift位随机数，与日期相加的结果返回。
	 * 
	 * @return 随机数
	 */
	public static long randomLong(int shift) {
		long base = System.currentTimeMillis() << shift;
		int add = RND.nextInt() & ((1 << shift) - 1);
		return base + add;
	}

	/**
	 * 生成不带横线的UUID字符串
	 * 
	 * @return
	 */
	public static String randomUUID() {
		return UUID.randomUUID().toString().replaceAll("-", "");
	}
	
}
